System and method for multiple range estimation location

ABSTRACT

A system and method of determining the location of a mobile station by determining the time of transmission of a signal by a mobile station and determining range rings at a plurality of reference stations receiving the transmitted signal, where the range rings represent the distance of the mobile station from the plurality of reference stations.

The present application is a divisional application of U.S. patent application Ser. No. 13/051,911 titled “System and Method for Multiple Range Estimation Location” filed on 18 Mar. 2011 which is itself a continuation-in-part of U.S. patent application Ser. No. 12/292,821 filed 26 Nov. 2008 titled “System and Method for Multiple Range Estimation Location”. Each of the foregoing applications is hereby incorporated herein by reference.

The present disclosure is directed to an accurate location estimation of a mobile device. More specifically the present disclosure is directed at estimating the location of a mobile device using multiple range estimates.

BACKGROUND

It is well known to determine the location of a mobile device based on signals that are transmitted by the mobile device received at a plurality of reference stations. When a location estimation technique is dependent on signal arrival time or signal transit time measurements, it is well recognized that signal multipath is often highly deleterious to the accuracy of the location estimate. Multipath refers to the reflection of a signal, or component of a signal off an object between the transmitter and the receiver.

In the context of a wireless network, a mobile device or mobile station (MS) transmits uplink signals to an access point or base station (BS) that may have a certain functional relationship (in terms of signal timing) with respect to downlink signals transmitted by a serving access point. This functional relationship permits an extraneous system to observe the transmissions between the mobile devices and the access point, and by doing so, determine the time of transmission for a given signal from the mobile device.

Knowing the time of transmission of a signal from a mobile device, and the time at which this same signal is received at a set of other observing stations (termed Wireless Location Sensors or WLSs), it is possible to obtain a set of Range Rings (RRs) representing the distance of the mobile device to each WLS. The intersection of the RRs represents the estimated geographic location of the mobile device.

However, in most location systems, the WLSs do not know the time of transmission of the signals from the mobile device. This is especially so when the mobile device is not synchronized with the access point. Because of this problem, a common location technology uses the time difference of arrival (TDOA) of the signal transmitted by the mobile device at a plurality of WLSs. Each pair of WLSs produces a hyperbola of points representing the possible location of the mobile device. The intersection of the hyperbolae between at least three WLSs provides an estimate of the location of the mobile device. Thus the TDOA technique is useful when the time of transmission of the signal is not known or cannot be determined.

The present application is directed to the novel use of RRs to estimate location referred to as Multiple Range Estimation Location (MREL). Additional embodiments include adjusting the Range Rings to account for errors and mitigate multipath interference.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified pictorial representation of one embodiment of the present disclosure.

FIG. 2 is a simplified pictorial representation illustrating the differences between one embodiment of the present disclosure and the use of a time difference of arrival (TDOA) method to determine the location of a mobile transmitter.

FIG. 3 is a simplified pictorial representation of one embodiment of the present disclosure where the serving base station does not include a WLS.

FIG. 4 is a simplified pictorial representation of one embodiment of the present disclosure where the serving base station does include a WLS.

FIG. 5 is a graphical representation of the g(.) function which can be used in one embodiment of the present disclosure to mitigate multipath propagation.

DETAILED DESCRIPTION

In the present disclosure, a system and method of MS location based on generating Range Rings that represent the propagation time of signals from the MS location to a set of receivers having a known location is disclosed. A functional relationship between the timing on the forward channel and the reverse channel, represented mathematically as ƒ(P) may be exploited to determine the time of transmit at the MS and this functional relationship can thus be used to determine the Range Rings. The Range Rings determined in this embodiment may potentially be degraded resulting from a common error due to any errors in estimating the time of transmit at the MS. In addition one or more of the Range Rings could be further distorted by non-line of sight (NLOS) or multipath propagation which, if not addressed, could seriously degrade the accuracy of any location estimate. This embodiment avoids differencing operations on the timing measurements since the method exploits the distinct propagation properties on each path; this also eliminates the ambiguity problems that can occur in TDOA location. The common error and the NLOS problem are jointly addressed in the present disclosure directed to a multipath mitigating method to generate location estimates that are far superior to standard TDOA location estimation.

With reference to FIG. 1, the communication link between a Mobile Station (MS) 100 and a serving Base Station (BS) 110 is illustrated. A marker M1 on the downlink channel (BS to MS) and a marker M2 on the uplink channel (MS to BS) may appear in some predefined manner. For example, the markers could occur in some regular periodic fashion.

An example of such a marker could be the start of a particular frame or the start of a particular slot. A marker could also be the start or end of a particular piece or sequence of data. In one embodiment, the communication protocol may force the MS to align its marker M2 in some prescribed manner, defined by a parameter P, and communicated within the network, with respect to the receive time (at the MS) of downlink marker M1. The uplink marker M2, when viewed at the MS, is aligned such that it is separated in time with respect to the downlink marker M1 by some time interval ƒ(P). The GSM cellular protocol is an example of one such configuration. In this case, the markers of interest are the start times of corresponding slots. The parameter P is the Timing Advance (TA) parameter and the function ƒ(P) is given by ƒ(TA)=3.6928*TA−3*T_(s) where T_(s) is the symbol duration in microseconds.

In such a configuration, location of the MS can be determined with reference to FIG. 1. An observer at some location L_(obs) 120 is capable of monitoring the downlink transmissions from the serving BS 110. The location of the serving BS 110 is L_(bs) and the observer knows both L_(bs) and L_(obs). The observer 120 can then determine the exact transmission time of a marker M1 by determining when the marker M1 was observed at L_(obs) and subtracting the transmission time for the signal from L_(bs) to L_(obs), denoted by t_(F). A known technique may be used to derive the time estimates, where the specific technique used to obtain these estimates is well known and not described herein. If the locations L_(obs) and L_(bs) are coincident or very close to each other, the time of transmission of M2 from the MS to the serving BS can be computed as follows: t _(M) =t _(F)+π_(p)−ƒ(P)  [1] where

t_(M) is the transmission of a marker M2 at the MS,

t_(F) is the transmission time of a marker M1 at the BS,

τ_(p) is the one way propagation time and, may include the effects of noise and multipath,

P is the timing parameter; and

ƒ(P) is a function of the parameter P

The time of receipt of the marker M2 at L_(obs) is given by t _(R) =t _(M)+τ_(p)  [2] Solving for τ_(p) gives the propagation time from the MS to the serving BS as τ_(p)=½(t _(R) −t _(F)+ƒ(P))  [3] and gives the time of transmission at the MS as t _(M) =t _(R)−½(t _(R) −t _(F)+ƒ(P))=½(t _(R) +t _(F)−ƒ(P))  [4]

Thus, knowing the transmission time t_(F), the receive time t_(R) the parameter P and the functional relationship ƒ(P), the time of transmission of the signal M2 at the MS can be determined.

In the case of the GSM protocol τ_(p)=½(t _(R) −t _(F)+3.6928*TA−3*T _(s)),  [5] and t _(M)=½(t _(R) +t _(F)−3.6928*TA+3*T _(s))  [6] where all time measurements in this case are in microseconds.

Knowing the time of transmission of a marker M2 at the MS, Range Rings can be calculated with respect to any other observing station or WLS. For example, the time of transmission of Marker 2 can be transmitted to all observing stations. Or the time of transmission can be transmitted to a remote central site which collects the time of receipt of M2 from each of the WLSs. For each WLS, if the marker M2 was received at time t_(R,WLS), then the propagation time from the MS to that WLS is τ_(p,WLS) =t _(R,WLS) −t _(M) =t _(R,WLS)−½(t _(R) +t _(F)−ƒ(P))  [7] And, given a set of WLSs, WLS₁, WLS₂, . . . WLS_(n), a set of Range Rings can be produced: τ_(p,WLSi) =t _(R,WLSi) −t _(M) =t _(R,WLSi)−½(t _(R) +t _(F)−ƒ(P)), i=1,2, . . . n  [8]

Thus, a set of Range Rings R, defining the propagation times from the MS to a set of WLSs, one of which could be co-located at the serving BS, can be determined. An intersection of the Range rings provides the location of the MS. The Range Rings need not be determined at each WLS. Instead all WLSs can transmit their respective timing information to one of the WLSs, e.g., the WLS co-located at the serving BS, which performs Range Ring and location determination. Likewise, the Range Ring calculations and location determination can be made at a remote central site discussed above. A beneficial aspect of this method is that multipath on the serving link can extend the Range Rings between the WLS at the serving BS and the MS, but will not affect the computed Range Rings from the MS to other WLSs.

In one embodiment, the covariance matrix C of the Range Rings captures important statistical properties that can be used in a location technique. Given equations [5]-[7], it is possible to express all of the elements of this matrix in terms of (a) the variance of the transmission time t_(F) given by σ_(F) ², (b) the variance of the arrival time at the serving WLS t_(R) given by σ_(R) ², and (c) the variance of the arrival time at non-serving WLSs, t_(R,WLSi) given by σ_(Ri) ². The calculations assume that the signals are disturbed by additive noise that is independent from sensor to sensor.

The diagonal terms of the covariance matrix C are given by the serving Range Ring variance ¼σR²+¼σ_(F) ² in the (1, 1) position and the individual non-serving Range Ring variances σ_(Ri) ²+¼σ_(R) ²+¼σ_(F) ² in the (k, k) positions, where k=2, 3, . . . n. The terms along the first row and column, the terms in the (1, k) and (k, 1) positions, are given by −¼σ_(R) ²+¼σ_(F) ². The mutual covariance terms between distinct non-serving Range Rings, the terms in the positions (k, j) where k 6=j; k, j 6=1, are given by ¼σ_(F) ²+¼σ_(R) ².

It may be observed that this defines a matrix with a lack of symmetry between the serving Range Ring and other non-serving Range Rings. This is to be expected from the form of the equations, particularly noting how the MS transmission time, t_(M) is generated. The serving Range Ring properties are therefore dominant in this matrix.

It is important to note that the variance for each Range Ring may be different in the MREL method. That is, there may be a different variance for each individual timing measurement. In the TDOA method the calculated variance is associated with the TDOA pairs, not with the individual timing measurement, since such individual measurements are not computable in such schemes.

When clear Line Of Sight (LOS) signal paths exist between a transmitter and a set of receivers, it is expected that the multipath component in the signal propagation is quite small. In a situation where multiple instances of Range Rings can be obtained over a short time interval within which the MS cannot move an appreciable distance, the best estimate of any particular Range Ring can be obtained by some means. For example, the median Range Ring for a given MS-WLS pair may be taken as the representative Range Ring for that pair. Alternatively, the representative Range Ring may be taken by clustering the available set of Range Rings for this MS-WLS pair and using the cluster with smallest distance. Note that if two or more tight clusters occur, it is possible to provide multiple Range Rings for a given MS-WLS pair.

The set of Range Rings may be given by R where

$\begin{matrix} {{R = \begin{bmatrix} R_{1} \\ R_{2} \\ \ldots \\ R_{k} \end{bmatrix}},} & \lbrack 9\rbrack \end{matrix}$ where k is the number of geographically separated WLSs observing the MS. The WLS at the serving BS is included as a member in this set.

Let S denote the region over which the MS maybe located. This region could, for example, be the region enclosed by the set of WLSs or some expansion of this basic region. Now, for each point (x,y) in the region let D_(i)(x,y) denote the distance from the point (x,y) to the i^(th) WLS. Now let us define the vector

$\begin{matrix} {D = {\begin{bmatrix} {D_{1}\left( {x,y} \right)} \\ {D_{2}\left( {x,y} \right)} \\ \ldots \\ {D_{k}\left( {x,y} \right)} \end{bmatrix}.}} & \lbrack 10\rbrack \end{matrix}$

Let α be a real number. Then assuming Gaussian noise as the disturbance on the Range Rings measurements, it can be shown that the optimum location for the MS can be written as the location ({circumflex over (x)}, ŷ) such that the quantity [R−A−D] ^(H) *C ⁻¹ *[R−A−D]  [11] is minimized, and in which the vector A is a vector of equal values in each position is written as,

$\begin{matrix} {A = \begin{bmatrix} \alpha \\ \alpha \\ \ldots \\ \alpha \end{bmatrix}} & \lbrack 12\rbrack \end{matrix}$ and where the minimization is over all points (x,y) in the region S and over all real α.

A highly simplified version of this, where we only consider the diagonal elements of the covariance matrix is considered in this disclosure. The understanding is that in actual application one should consider both the optimal solution and the simplified presentations, shown here primarily for the ease of exposition of the principles involved. With this simplification, let Δ be a real number. Then the optimal location for the mobile can be determined as the location ({circumflex over (x)}, ŷ) such that the vector norm given by ∥R−A−D∥  [13] is minimized.

An understanding of the process applied here can be obtained by considering some fundamental issues associated with LOS propagation and Range Ring accuracy. First, it is important to note that the Range Rings obtained as described in the previous section could have some uncertainty associated with them due to even a small error in estimating the transmission time at the MS. The parameter α is used to permit correction of this effect and also to possibly correct any error in the MSs implementation of the functional relationship ƒ(P) as well as compensating for multipath in the serving BS to MS path.

Secondly, once these measurement inaccuracies have been addressed, the remaining error on the Range Rings is assumed to be Gaussian noise for the ideal case of LOS signals. This noise is statistically limited by other quantities such as the power level of the signal, and is generally small. For example in the GSM protocol the associated error is of the order of a few tens of meters.

This minimization in equation [11] can also be expressed as min Σ_(i=1) ^(n)(R _(i) −α−D _(i))²  [14] where i indexes the particular Range Ring (or the WLS associated with that Range Ring) and the sum is over all i, with the index i running from 1 to n, where n is the number of rings. In addition if each Range Ring is assigned a weight w_(i), the minimization can be written as min Σ_(i=1) ^(n) w _(i)(R _(i) −α−D _(i))²  [15] An example of such a weight is the inverse of the variance of the Range Ring measurements that were used to generate that particular Range Ring. Another example of a weighting may be a measure of the overall quality of the measurements that generated this Range Ring.

In addition, the range of α may be limited. In one case α is unrestricted; that is it is allowed to take any real value. In another case, α is limited in a manner defined by several factors including the wireless protocol being used, the type of terrain being considered, etc. In addition, one can also consider the case where α is limited by specifying its value to lie on a specific probability distribution.

In another case, the range of α can be limited by suitably applying a weighting function to a such that locations with small values for α are weighted more heavily—thus solutions with smaller values of α are picked in preference to solutions with large values of alpha. In such a case; equation [15] can be rewritten as: min Σ_(i=1) ^(n) w _(i)(R _(i) −α−D _(i))²π(α)  [15-a] where the function π(α) is a weighting function. One example of such a weighting function would be shaped such that it is smallest where α is most likely, and largest where α is least likely. This forces the location to preferentially pick locations where α is smaller. By applying such a constraint on α, the location solution is constrained in a manner that reflects the expected accuracy of the range rings and the nature of the environment in which the location attempt is made.

In yet another method of constraining α, depending on the value of α, the location estimate can be guided towards a default location. A typical default location used in cellular geolocation is the location at 1 km on bore-sight from the serving site. Let this location be denoted by L. As the magnitude of alpha increases or the value of alpha that attempts to minimize equation [15] approaches an unlikely number, the location estimator can be driven towards point L. One method of forcing such a constraint within MREL is expressed in the following location determining function: min[w ₀(α)R ₀ ²+Σ_(i=1) ^(n) w _(i)(R−α−D _(i))²]  [15-b] Here, the weight w₀ is a function of α and R₀ is the distance from the location estimate to the default location L. Since w₀ is a function of a that has larger weight with increasing α, the resulting location is driven towards the default location L as either α increases in magnitude, or as a moves out of its most likely region.

It is not necessary that the observer location be collocated with the base station location. In one embodiment illustrated in FIG. 1, the observer L_(OBS) 120 can be located at a known distance from the base station L_(BS) 110. In this case, the Range Rings created are in the shape of ellipses rather than circles. One application of this embodiment is where the locations of the WLSs and the BTSs are not coincident as illustrated in FIG. 3. With reference to FIG. 3, there is no WLS (observer location) at the serving site BTS1 300. There are WLSs at the sites BTS2 310, BTS3 320, and BTS4 330. More generally there may be some observer locations with known coordinates and they may or may not be collocated with one or more BTSs.

For example, if the serving base station does 300 not have a co-located WLS, using the WLS at BTS2 310, we can, in a manner completely analogous to equations [1] and [2], write the following equation: t _(R2) =t _(F) +d ₁ −f(P)+d ₂  [a1]

where,

t_(R2) is the arrival time of the signal (the observed time of receipt of a marker) transmitted from the mobile 340 and received at the observer location WLS coincident with BTS2 310;

t_(F) is the time of transmission of a marker on the downlink received at WLS at BTS2 310, as described previously in association with equations [1] and [2];

d₁ is the signal propagation time from the serving site 300 to the mobile 340; and

d₂ is the signal propagation time from the mobile 340 to the WLS coincident with BTS2 310.

It is important to note that t_(F) can be measured even if one does not have an WLS collocated with the serving BTS: one simply observes the marker at some different WLS (WLS at BTS2 310 in this example) and adjusts the time for the known distance between the serving BTS and the observing WLS. Alternately one observes the marker at multiple WLSs and takes an average of the observation times after adjusting for the known distances from each WLS to the serving site.

Note also that the observing WLS does not need to be coincident with BTS2 310 and is only shown as an example in FIG. 3. The only requirement is that the observing WLS has known coordinates (a known location). Equation [a1] is the equation of an ellipse with foci located at the serving base station BTS1 300 and the WLS located at BTS2 310. This can be seen by re-writing equation [a1] as d ₁ +d ₂ =t _(R2) −t _(F) +f(P)  [a2]

where the right hand side is a constant determined from the measurements and the determined value of f(P); d₁ and d₂ are the distances from two fixed points (the serving site location 300 and the WLS location 310) to the mobile 340. Similarly one can construct equations identical in form to [a2] with respect to the signal path from the serving site BTS1 300 to all other observer locations (WLSs). For each such WLS one then obtains an ellipse as a locus (range ring) on which the mobile must be located. Thus the intersection of these elliptical loci defines the location of the mobile 340. That is, elliptical range rings can be constructed and their common intersection point or points will be the most likely location of the mobile.

With reference to FIG. 4, it can also be observed that the elliptical range rings offer a viable mobile location solution even when there is an WLS coincident with the location of the serving site BTS1 400. In this case one of the ellipses 410, the ellipse corresponding to the signal path starting at the serving BTS1 400 and ending at the WLS collocated with the serving BTS, collapses into a circle: a special case of an ellipse with equal minor and major axes. Thus the mobile 440 can be located at the intersection of one circle 410 centered at the serving BTS 400 and several ellipses 420, 430 and 450. Each of these ellipses has the serving site as one of its foci and an observing WLS 425, 435 and 445 respectively, as the other focus.

The present disclosure addresses the additional considerations when multipath is present by utilizing the same basic principles described above, bounded by additional constraints discussed below.

As discussed above, when clear line of sight signal paths exist between a transmitter and a set of receivers, the multipath component in the signal propagation is expected to be small. However in the majority of the situations that require location estimation, the more typical situation is that the environment is Non Line Of Sight (NLOS). This is particularly true in cities and other built-up environments. Transmitted signals arrive at a receiver along multiple paths and hence the determined propagation time is almost always in excess of the applicable LOS transmission time. In M. Silventionen and T. Rantalainen, Mobile Station Emergency Locating in GSM, Proc. IEEE Int. Conf Personal Wireless Communications, Vol. 1 (1996), 232-238, the authors consider the effect of NLOS error in measurements and concludes that the errors dramatically effect accuracy of standard location algorithms. Other prior art methods of dealing with NLOS signals are considered in and discussed in P.-C. Chen. A non-line-of-sight error mitigation algorithm in location estimation, Proc. IEEE Conf on Wireless Communications Networking, vol. 1 (1999), 316-320, and Xin Wang, Zongxin Wang and Bob O'Dea. A TOA-based Location Algorithm Reducing the Errors due to Non-Line-Of-Sight (NLOS) Propagation, IEEE Trans. Vehicular Technology., Vol. 52, no. 1 (January 2003), 112-116.

For the NLOS situation where multiple instances of Range Rings can be obtained over a short time interval, and within which the MS cannot move an appreciable distance, the best estimate of any particular Range Ring can be obtained by some means. For example, the median Range Ring for a given MS-WLS pair may be taken as the representative Range Ring for that pair. Alternatively, the representative Range Ring may be taken by clustering the available set of Range Rings for this MS-WLS pair and using the cluster with smallest distance. In any case, the final set of Range Rings has a single Range Ring for each MS-WLS pair. Note that if two or more tight clusters occur, the present disclosure can be used as follows to develop multiple Range Rings for a given MS-WLS pair.

Let this set of Range Rings be given by R where

$\begin{matrix} {{R = \begin{bmatrix} R_{1} \\ R_{2} \\ \ldots \\ R_{k} \end{bmatrix}},} & \lbrack 16\rbrack \end{matrix}$ where k is the number of geographically separated WLSs observing the MS. The WLS at the serving BS is included as a member in this set.

Let S denote the region over which the MS may be located. This region could, for example be the region enclosed by the set of WLSs or some expansion of this basic region. Now, for each point (x, y) in the region let D_(i)(x, y) denote the distance from the point (x, y) to the i^(th) WLS. Now let

$\begin{matrix} {D = {\begin{bmatrix} {D_{1}\left( {x,y} \right)} \\ {D_{2}\left( {x,y} \right)} \\ \ldots \\ {D_{k}\left( {x,y} \right)} \end{bmatrix}.}} & \lbrack 17\rbrack \end{matrix}$ Let α be a real number and β_(i) a set of fixed non-positive real numbers. Then an optimal location for the mobile is determined as the location (x′, y′) such that the vector norm given by ∥R−A−D∥  [18] is minimized, subject to the set of constraints that {R _(i) −α−D _(i)}≧β_(i) ,∀i,  [19] in which the vector A is a vector of equal values in each position written as

$\begin{matrix} {A = \begin{bmatrix} \alpha \\ \alpha \\ \ldots \\ \alpha \end{bmatrix}} & \lbrack 20\rbrack \end{matrix}$ and where the minimization is over all points (x, y) in the region S and over all real α or where α is constrained in some manner to a range of real numbers. In what follows we refer to the constraints of equation [19] as the “β constraints”.

Similar to the discussion above with respect to LOS, in the NLOS scenario, the Range Rings could have some uncertainty associated with them due to even a small error in estimating the transmission time at the MS. The parameter α, once again may be used to permit correction of this effect and also to possibly correct any error in the MSs implementation of the functional relationship ƒ(P) as well as compensating for multipath in the serving BS to MS path. Once these measurement inaccuracies have been addressed, the remaining error on the Range Rings is assumed to be Gaussian noise for the ideal case of LOS signals. As discussed previously, this noise is statistically limited by other quantities such as the power level of the signal, and is generally small. For example in the GSM protocol the associated error is of the order of a few tens of meters. Thus, for those Range Rings disturbed only by noise, the negative excursion on the measurement can vary from the correct value by at most a few tens of meters.

The positive excursion is unconstrained since multipath or NLOS propagation can extend the measurement, at least up to some high limit. This explains the use of the constraints applied by β_(i). It follows that applying this constraint is then equivalent to biasing the final solution for the estimated location in a manner that favors location estimates where the Range Rings with NLOS components are de-emphasized. The final estimated location is thus biased in such a manner that the corrected Range Rings, {R_(i)−α}, at any candidate solution, exhibit either the effect of Gaussian noise or a positive measurement excursion due to multipath (or NLOS signals) but no large negative excursion.

A simplified constraint may also be applied in general by using a single real non positive number β for each β_(i). In such a case, the assumption is that the variation in the measurements on the signals forming the Range Rings are approximately identical. In the general case though, it is better to apply different values of β_(i), which, in addition to being defined by varying power levels, can also be related to the particular WLS and its adjoining terrain. Note that it is also conceivable that there may be situations in a wireless environment where some signals are known to always have some minimal multipath such that it is statistically larger than the noise component. In such cases, it may be accurate to have some β_(i) as small positive real numbers.

If a set of weights w_(i) as used in the previous LOS section are available for use with each Range Ring, one could specify the method of location as determining min Σ_(i=1) ^(n) w _(i)(R _(i) −α−D _(i))²  [21] subject to the requirement that {R _(i) −α−D _(i)}≧β_(i) ,∀i,  [22] In addition, like in the LOS scenario, the range of α can be limited in the multipath scenario. In one case, α is unrestricted; that is it is allowed to take any real value. In another case, it is limited in a manner defined by several factors including the wireless protocol being used, the type of terrain being considered, etc. For example, in the GSM protocol and in a rural environment a could be limited to a maximum of 500 meters.

A further method of implementing the multipath mitigating constraints of equations [19] or [22] is by means of directly modifying the measurements within the objective function. In this method, measurements that exhibit a positive offset are unaffected but measurements that exhibit a negative offset are expanded. Thus the earlier mentioned β constraints of equations [19] and [22] can be implemented by applying such expansions of negative offsets. One such implementation is achieved by requiring the function to be minimized to have the following characterization: min Σ_(i=1) ^(n) w _(i) [g(R _(i) −α−D _(i))]²  [22-b] A possible role for the function g(.) in equation [22-b] is to examine its argument, namely (R_(i)−α−D_(i)), and if this argument is positive, not modify it. If the argument is negative, and depending how large the negative value is, the g(.) function will increase the negativity (i.e. make the negative number even more negative). The effect of such measurement adjustments is to force the function to pick a final selected location such that it has a multipath profile where most, if not all, measurements have positive bias.

In such cases as well, it is also possible to combine this with a weighting on the value of alpha, applying a weighting function as follows: min Σ_(i=1) ^(n) w _(i) [g(R _(i) −α−D _(i))]²π(α)  [22-c] In [22-c] the function g(.) operates on its argument by examining the sign of (R_(i)−α−D_(i)) and depending on the sign, operate as described in the previous paragraph. However, the function π(α) will further modify the expression by weighting it depending on the value of α. Typically large values of α will be made less likely in a solution by making π(α) large for such values. One example of such a weighting function would be shaped such that it is smallest where α is most likely, and largest where α is least likely. This forces the location to preferentially pick locations where α is smaller.

Alternately a dependency on the value of α can be achieved by using a function of the following form to determine the location: min[w ₀(α)R ₀ ²+Σ_(i=1) ^(n) w _(i) [g(R _(i) −α−D _(i))]²]  [22-d] Here, the weight w₀ is a function of α and R₀ is the distance from the location estimate to a default location L. Since w₀ is a function of a that has larger weight with increasing α, the resulting location is driven towards the default location L as either α increases in magnitude, or as α moves out of its most likely region. Thus in [22-d] the location now depends on the multipath profile, as captured by the operation of the function g(.), and also on α, the value of the adjustment.

Additionally, in all of the above methods of location estimation, and in all of the variety of location solutions which we have expressed as functions, it is also possible to apply different values of α to each measurement. For example, while minimizing any of the abovementioned functions, one can select the adjustment for a particular measurement, say the first measurement, as α1 and then depending on some other observation or calculation, choose the adjustments for the other measurements as α2, α3, . . . , αn. One possible method for deciding how to set such adjustments is to use the measurement variance as a guide. Then the sequence of adjustments α1, α2, . . . αn, can be taken in order of increasing variance where the adjustment is larger with larger variance. It should be clear to the informed reader that many such variations of how these adjustments are mutually related can be considered.

In all of these cases, it is also possible to make the function g(.) affect positive offsets or biases. For example, it can be made to treat all positive biases in excess of some number as equivalent. Then, in a typical example, a positive bias of 1 km or 5 km may result in the same function value. Intuitively what this does is to treat all multipath in excess of 1 km the same; there is no need to penalize such a measurement any more than it is already being penalized—the selected location becomes defined by the other measurements, not the one with large multipath. Thus the use of the g(.) function permits a flexible architecture for picking particular signal measurement profiles. These choices result in much improved location accuracy when multipath is present.

One of the primary purposes of the BETA algorithm as described above is to implement a specific technique for the mitigation of the effect of multipath in determining a location for the mobile device. As discussed above, BETA is implemented using a function g(.). The role of this function is to force the algorithm to preferentially select locations where the multipath profiles of the corrected measurements have positive rather than negative bias. The algorithm also corrects for other errors in the measurements using a parameter termed α. This parameter is ideally zero or a few meters. When α is non-zero, the algorithm guides the location estimate towards a default location. This default location, denoted P_(L) may be picked in any arbitrary manner. For example the selected location P_(L) could be at some prescribed distance along bore-sight from the serving site. The BETA algorithm may perform better than using the standard MREL algorithm without BETA, with the degree of improvement directly related to the prevalence of multipath in the operating environment.

A further enhancement of BETA is also described herein. In this case, different α values are used for different sites based on an indicator to the expected multipath on each signal. This case is denoted by using a vector of adjustments ζ in which each component applies to a specific site or signal. One possible indicator to the presence of multipath is the variance of the range measurements, and hence a particular implementation can use some function of the variance in making these adjustments.

In a specific embodiment of the present disclosure, let n denote the number of sites. Let the measured arrival times at the sites (sensors) be T_(i), i=1, 2, . . . n . Let the determined time of transmission of the signal at the Mobile be t_(M) (this determination being performed exactly as in the original MREL algorithm). We then compute a set of range rings corresponding to the sensors (LMU's or sites) as follows: R _(i) =c(T _(i) −t _(M)); i=1,2, . . . n  [23] where c denotes the speed of light in free space.

Let (x, y) denote a current location for the mobile device, meaning that a sequence of estimates of the mobile location are made and (x, y) denotes an intermediary point in this process. The objective function of MREL BETA seeks to minimize the following function:

$\begin{matrix} {{{f\left( {x,y,\alpha} \right)} = {{w_{L}D_{L}^{2}} + {\sum\limits_{i = 1}^{n}{w_{i}\left( {g\left\lbrack {R_{i} - \alpha - D_{i}} \right\rbrack} \right)}^{2}}}},} & \lbrack 24\rbrack \end{matrix}$ where D_(i) is the distance from the point (x, y) to the site i, D _(i)=√{square root over ((x−x _(i))²+(y−y _(i))²))}{square root over ((x−x _(i))²+(y−y _(i))²))},  [25] D_(L) is the distance from the point (x, y) to the default location P_(L), D _(L)=√{square root over ((x−x _(L))²+(y−y _(L))²))}{square root over ((x−x _(L))²+(y−y _(L))²))},  [26] the terms w_(i) are some predetermined weights, and w_(L) is a variable weight that is continually modified in the course of the location estimation process depending on the value of α at any instant of that process. For example,

$\begin{matrix} {w_{L} = {\left( {\frac{1}{C}\left( \left\lbrack \frac{\alpha}{F} \right\rbrack^{2\; N} \right)} \right).}} & \lbrack 27\rbrack \end{matrix}$ In equation [27], F is a real number (for example 1.75), N is an integer (for example 4), C is a constant (for example 100). w_(L) may be described more generally as a weight that has a shape inversely proportional to the probability that α takes a certain value. Such a probability distribution for α could have been obtained previously from examining the results when the MREL α algorithm was implemented in a particular environment. Alternatively w_(L) can be selected based on laboratory experiments that determine the probability density function of α. The function g(.) has the general shape as illustrated in FIG. 5. The function g(.) has a slope equal to 1 in the first quadrant (with possibly some slightly higher or lower slope as the argument approaches zero). In the third quadrant g(.) has a slope that continues to increases as the argument decreases. The function g(.) is a particular method of implementing the β constraints described in this disclosure. The effect of g(.) is to change the measurements prior to the next iterative step of the iterative location search. Effectively, if the current (x, y, α) values correspond to certain biases in the measurements, it penalizes negative excursions by making them larger (negatively) while not penalizing positive excursions to the same extent. Thus, the candidate locations associated with the positive excursions can be weighted greater than the candidate locations associated with the negative excursions. The resultant effect is to then force the next location estimate to avoid such negative excursions in the measurements from appearing. This is how MREL BETA forces the final estimated location to exhibit positive bias measurements as would be apparent in any real-world environment.

The optimum location is obtained as

$\begin{matrix} {\left( {\hat{x},\hat{y},\hat{\alpha}} \right) = {\arg\;{\min\limits_{x,y,\alpha}{\left\lbrack {f\left( {x,y,\alpha} \right)} \right\rbrack.}}}} & \lbrack 28\rbrack \end{matrix}$

On examining equation [24] it is found that the form of the minimization is ideally suited to the application of the Gauss-Newton non-linear least squares minimization technique. This technique can be implemented to find a solution to the problem. The technique requires the Jacobian matrix consisting of the partial derivatives of each sub-function of [24] with respect to x, y, and α. Let these sub-functions be denoted by λ_(i)(x,y,α)=√{square root over (w _(i))}g(R _(i) −α−D _(i)); i=1,2, . . . n,  [29] λ_(n+1)(x,y,α)=√{square root over (w _(L))}D _(L)  [30]

The terms in J are then obtained by taking the partial derivatives of λ_(i) with respect to x, y and α. Thus, for i=1, 2, . . . n ,

$\begin{matrix} {{{J\left( {i,1} \right)} = {\sqrt{w_{i}}{g_{p}\left( {R_{i} - \alpha - D_{i}} \right)}\left( \frac{x_{i} - x}{D_{i}} \right)}},} & \lbrack 31\rbrack \\ {{{J\left( {i,2} \right)} = {\sqrt{w_{i}}{g_{p}\left( {R_{i} - \alpha - D_{i}} \right)}\left( \frac{y_{i} - y}{D_{i}} \right)}},} & \lbrack 32\rbrack \end{matrix}$ J(i,3)=−√{square root over (w _(i))}g _(p)(R _(i) −α−D _(i)),  [33]

where g_(p) denotes the first derivative of the function g(.) with respect to its argument. That is, g_(p)(.) is the slope of the function g(.) at the particular (x, y, α) point.

The final row of J (row n+1) is obtained by taking the partial derivatives of λ_(n+1) with respect to x, y and α:

$\begin{matrix} {{{J\left( {{n + 1},1} \right)} = {\sqrt{w_{L}}\left( \frac{x_{L} - x}{D_{L}} \right)}},} & \lbrack 34\rbrack \\ {{{J\left( {{n + 1},2} \right)} = {\sqrt{w_{L}}\left( \frac{y_{L} - y}{D_{L}} \right)}},} & \lbrack 35\rbrack \\ {{J\left( {{n + 1},3} \right)} = {\frac{1}{2\sqrt{w_{L}}}\left( \frac{\partial w_{L}}{\partial\alpha} \right){D_{L}.}}} & \lbrack 36\rbrack \end{matrix}$

Vector Z can be defined as a vector containing the various function values at the current location. Then Z=[√{square root over (w ₁)}g(R ₁ −α−D ₁) √{square root over (w ₂)}g(R ₂ −α−D ₂) √{square root over (w ₃)}g(R ₃ −α−D ₃) √{square root over (w _(n))}g(R _(n) −α−D _(n)) √{square root over (w _(L))}D _(L)]  [37]

The increment in the estimate of (x, y, α) can then be written as Δ=[δxδyδα]  [38] where Δ=−(J ^(T) J)⁻¹ JZ.  [39]

Thus if the current stage of the location process places at a current location (x_(k), y_(k), α_(k)), the next location is then obtained iteratively as x _(k+1) y _(k+1)α_(k+1) =x _(k) y _(k)α_(k)−(J _(k) ^(T) J _(k))⁻¹ J _(k) Z _(k),  [40] where J_(k), Z_(k) are the evaluations of J and Z at the k^(th) iterations. The iterations are continued until convergence occurs. The method described in the previous sections derives the presence of multipath indirectly. By observing the mismatch of the adjusted measurements in trying to find a candidate location for the mobile, the g(.) function adjusts the measurements within the algorithm to achieve a best solution where the multipath in the signals is removed or mitigated. While this technique has been shown to be efficacious in tests on real data, it is possible to further enhance this by removing multipath by the observation of certain characteristics of the signals. For example, by observing the arrival times of signals on multiple channels one can deduce that there is multipath in the channel. Whenever these arrival times have appreciable differences one can deduce the presence of multipath. In our investigation of real signals, another observation that has been found to point to multipath is signal timing variance. A majority of the time, when signals do exhibit large variance, an analysis of the data shows the presence of multipath. Hence it makes sense to include an adjustment to the measurements directly, in addition to the algorithmic adjustment made in the previously described BETA features.

This can be implemented by modifying equation [24] as follows:

$\begin{matrix} {{{f\left( {x,y,\underset{\_}{\zeta}} \right)} = {{w_{L}D_{L}^{2}} + {\sum\limits_{i = 1}^{n}{w_{i}\left( {g\left\lbrack {R_{i} - \underset{\_}{\zeta} - D_{i}} \right\rbrack} \right)}^{2}}}},} & \lbrack 41\rbrack \end{matrix}$ where ζ is now a vector adjustment. A location solution is found where the function is minimized.

One possible implementation of this is to make the following setting: ζ(j)=α, where α is as described previously and j is the minimum variance measurement. Now with ζ(j) as a guide, all of the other elements in the vector ζ can be generated based on a determination of the multipath on every other signal. For example, one can use the variance ratio between the minimum variance site j and any other site k to appropriately determine the value of ζ(k) that should be applied. Likewise, any other technique of ascertaining the presence of multipath can also be used to create the mapping from the adjustment to a particular measurement, as given by α and the adjustments to the other measurements filling out the vector ζ. More generally, equation [41] can be implemented independent of any tie in to the description of the previous sections. Equation [41] can be interpreted as seeking the best set of different adjustments to the measured ranges R in conjunction with the further finer adjustment provided by the g(.) function, which can be considered as mutually constraining the values in the ζ vector. That is, the adjustment vector is constrained by a non-linear function h(.) such that h(ζ)=0.  [42] In this formulation, one searches the space of ζ adjustments with mutual constraints on the values in ζ seeking a minimizing value of [41]. If one were to interpret the variance based technique described earlier using this formulation, the specific measurement variances constrain how much difference exists between the different values in ζ, and this establishes the mutual constraint on the ζ values. An implementation of this algorithm would then have a much larger number of variables than equation [41]: two variables for the location and as many other variables as there are ranges in R

The use of MREL to determine location of the MS is significantly different than the use of TDOA to determine location. For example, in TDOA location, there is no attempt made to determine the time of transmission from the MS. MREL on the other hand requires a determination of the MS transmit time so that it can function appropriately. In addition, because the MS transmit time is unknown in TDOA, there is no option but to subtract individual arrival times at WLSs so that the unknown MS transmit time is eliminated. For example, if the set of measured arrival times of a signal at a given set of WLSs is T, then the first operation on T is to eliminate the unknown MS transmit time by multiplying T by a differencing matrix H to generate T _(diff) =H*T  [23] in which

$\begin{matrix} {{H = \begin{bmatrix} 1 & {- 1} & 0 & 0 & \ldots & 0 & 0 \\ 0 & 1 & {- 1} & 0 & \ldots & 0 & 0 \\ \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & \; \\ 0 & 0 & 0 & 0 & \ldots & 1 & {- 1} \end{bmatrix}},} & \lbrack 24\rbrack \end{matrix}$ is the differencing matrix that generates pair-wise difference terms. Permutations of the matrix H may also be used where each row has a single +1 term, a single −1 term and all other terms are zero. In contrast MREL has no differencing stage since the propagation time information is vital and thus requires retaining the MS's transmission time. If for example TDOA was applied to the Range Ring estimates, the first stage would have been to generate H*R. Clearly this is not the case in MREL where if this were done the MS transmission time information is lost.

Another significant difference is that if the location problem involves n WLSs, the MREL technique generates n surfaces. In one embodiment, each of these surfaces is a circle defined by {[R _(i) −α=D _(i) ]}; i=1, 2, . . . n.  [25] TDOA location on the other hand generates n−1 surfaces T _(diff,i) =h _(i) ; i=1, 2, . . . (n−1)  [26] where each surface is a hyperbola defined by a constant h.

Another difference is that the MREL surfaces being circles or ellipses are much better constrained geometrically than TDOA location which uses hyperbolae (which extend to infinity at their tails). The MREL surfaces, being one more in number than the TDOA surfaces have reduced ambiguity. This can clearly be seen with reference to FIG. 2. In this case, there is a collocated WLS at the serving base station. Three WLSs 200, 210, 220 produce the three circles constituting MREL surfaces 205, 215, 225 intersect in a single point 230 which is the correct location of the MS. In contrast, the hyperbolae generated as TDOA surfaces 240, 250, 260 have two points of intersection 230 and 270. Also note that with three WLSs there are only two independent hyperbolic surfaces, whereas all three hyperbolic surfaces have been plotted to show that the intersections common to the first two independent hyperbolae are unaltered when the third dependent hyperbola is introduced. The main observation is that there is no ambiguity when MREL surfaces are used, whereas there is ambiguity (i.e. is the solution 230 or 270?) when TDOA location is applied.

Another significant difference is that the TDOA location method is weak in its ability to functionally address the problem of multipath because it starts by considering the difference of two arrival times. Once the difference of two arrival times is generated, a constraint β_(i) such as applied in MREL, is inapplicable since the differenced terms show no multipath bias in either a positive or negative direction. That is, the TDOA surfaces could be equally extended in the positive or negative direction. In addition, the TDOA location scheme offers no equivalent to the limitation on the range of α as specified for MREL. The effect of such a limitation is to constrain the solution further by the available measurements. In a TDOA implementation, such a limitation on the Range Rings would be masked by the fact that time differences of arrival times are obtained, and where such differencing effectively negates the possibility of excluding certain arrival times measurements.

Another significant difference is that if ƒ(P) is implemented differently from what is assumed, that is the MS implements either an incorrect value of P or applies ƒ(P) in some manner divergent from the expected value, then t_(M) will be incorrect, potentially affecting all Range Rings, but doing so equally in a manner that can be mitigated using α. On the other hand, NLOS behavior on the serving link can cause t_(M) to be different from what it would be if the link were LOS. It will however be computed properly in that the computed value matches the actual value. In this case, if the other links from the MS to other WLSs were LOS, such Range Rings would be computed correctly. That is, the serving Range Ring will be magnified but other Range Rings will be unaffected. This should be contrasted with TDOA location where NLOS behavior on the serving link, assuming this is the link with respect to which the TDOA hyperbolas are constructed, will affect all hyperbolas.

The previous sections considered the general case of generating a representative Range Ring for each MS-WLS pair over a period of time referred to as a collect. Each such collect involves a sequence of estimates for each Range Ring, and the sequence of Range Rings is finally reduced to a representative Range Ring. The individual estimation periods are referred to as time slots. For example if R_(ij) is the Range Ring associated with WLS i within time slot j, the final Range Ring R_(i) associated with WLS i and the MS over the entire collect is given by R _(i) =g(R _(ij)),  [27] where g(.) is the function that reduces this set of values R_(ij) to a single Range Ring R_(i). For example g(.) could be the median of the set, the mean of the set, or in general any specified function of the set R_(ij). Once a particular R_(i) is determined for each WLS, the location determination follows as described in previous sections.

However, several other embodiments of this sequence of processing can be implemented. For example, in one embodiment, an estimated location for the MS can be determined in each slot. A final location can them be determined over all slots by suitably combining the individual estimates in some manner. For example the individual estimates can be clustered and the cluster centroid can be defined as the final location. In another embodiment, a quality measure associated with each such estimate can be used to weight and sum the individual location estimates. In yet another embodiment, a method can be used to extract the location estimates associated with smaller values of the final α, given by {circumflex over (α)}, and combine these estimates to produce the final location. A final low value of α serves as an indicator that the set of Range Rings used in this location are in agreement and also that the Range Rings themselves are good estimates. This combination of qualities makes such a selection highly likely to result in an accurate location estimate.

In another embodiment, the location estimation techniques of the previous sections can be combined to directly generate a location estimate. One method for doing so can be written as

$\begin{matrix} {{\min\limits_{\underset{\_}{\alpha},x,y}{\sum\limits_{j}{\sum\limits_{i}\left\{ {w_{ij}\left( {R_{ij} - \alpha_{j} - D_{ij}} \right)}^{2} \right\}}}},} & \lbrack 28\rbrack \end{matrix}$ where w_(ij) is the applied weighting on the ith Range Ring of the jth slot, and subject to the requirement that {R _(ij)−α_(j) −D _(ij)}≧β_(ij) ,∀i,j  [29] and where

$\underset{\_}{\alpha} = {\begin{bmatrix} \alpha_{1} \\ \alpha_{2} \\ \ldots \\ \alpha_{j} \\ \ldots \\ \alpha_{k} \end{bmatrix}.}$

In another embodiment, any of the methods described here for using a set of Range Rings to generate a location estimate may be enhanced by examining properties of the location process. When a location estimate is generated, the set of ({circumflex over (α)}, {circumflex over (x)}, ŷ) minimizes the function of interest (Eqns: 11, 13, 14, 17, 20, 23). Various measures of the estimated location ({circumflex over (x)}, ŷ) can be defined:

For example, the set {R _(i) −{circumflex over (α)}−D _(i)} can be examined. Each element of this set is indicative of the agreement of the location estimate with the original measurements. This set, viewed as a vector is thus called a mismatch vector. If the magnitude of some of these elements is significantly larger than some of the other elements, subsets of the original set of Range Rings can be used to generate new location estimates. The first case corresponds to where there is a large mismatch. If such secondary estimates result in a smaller mismatch, such a secondary estimate with low mismatch may be used to define a revised location estimate.

By way of another example, the locations generated by all the different subsets of the original set of Range Rings can be clustered. Doing so, it can be determined which subset of Range Rings define the best cluster. This best cluster can be defined by various measures such as the tightness of the cluster, the number of members, a function of the Circular Error Probable (CEP) for the locations in the cluster, a function of the values of {circumflex over (α)} for the locations in the cluster, etc. Once the appropriate cluster is selected, the centroid of this cluster can be defined as the final estimated location.

In one embodiment, a method for improving the transmission time estimate can be used. The estimation of the transmission time, t_(F) at the serving BS can be obtained by observing the transmitted signal at a single observer location L_(obs) as described previously. Often, L_(obs) is co-located at the serving BS location. However, even if it is not, provided the distance between L_(obs) and the serving BS is known, t_(F) can be estimated as the time at which a marker on the downlink is observed at L_(obs) and subtracting the propagation time required for the signal to traverse the distance from the serving BS to L_(obs).

Because this estimate can be corrupted by multipath or NLOS behavior of the path between the serving BS and L_(obs), the present disclosure can attempt to mitigate the corruption caused by the multipath. One method of achieving this is to observe the downlink at more than one WLS. If the downlink is observed at WLS₁, WLS₂, WLS_(m), the known (computed since the distances are known) propagation times from the serving BS to each of these WLSs is t_(p1), t_(p2), . . . , t_(pm) and the observed times at which the marker is observed on the downlink at each of these WLSs be t_(O1), t_(O2), . . . , t_(Om). Then the actual transmission time, as observed by these observers is given by the vector

$\begin{matrix} {t_{F} = {\begin{bmatrix} {t_{O\; 1} - t_{p\; 1}} \\ {t_{O\; 2} - t_{p\; 2}} \\ \ldots \\ {t_{O\; m} - t_{pm}} \end{bmatrix}.}} & \lbrack 30\rbrack \end{matrix}$ A final estimate of the transmission time t_(F) can be obtained as a function of the vector t_(F). One possibility is to use the mean of the vector. Another method would be to use the median. Since multipath can only extend the propagation times, another option would be to set t_(F) as the minimum of the vector, provided that all measurements in the vector have high quality.

It was previously described how the MREL method could be implemented in a GSM protocol. However, the disclosure is equally applicable to other protocols as well. For example, the generation of Range Rings for the Universal Mobile Telecommunication System (UMTS) fits the general framework described above. The relevant marker M1 in this case can be taken as the Downlink Dedicated Physical Channel (F-DPCH) frame marker and the marker M2 can be taken as the Uplink Dedicated Physical Channel (DPCH) frame marker. P is the Timing Window Parameter. With this interpretation, the function ƒ(P) is given by ƒ(P)=−(1024+P)*T _(c)  [31] where

P is the Timing Window Parameter in the range [0-148] and

T_(c) is 26.042 microseconds.

The value of ƒ(P) referred to in the standards as the UE Rx-Tx time difference is reported by the MS. Unlike the case of GSM, where the TA parameter is transmitted by the BS with the understanding that the Mobile should implement the corresponding ƒ(P), in the case of UMTS the MS's objective is to always aim for a value of P=0 and thus ƒ(P)=−1024. This is not readily achieved at all times, such as during a handover, where the MS is adjusting from one serving BS to another. The actual ƒ(P), where P is non-zero, is thus reported back to the BS. With the knowledge of ƒ(P), the calculation of the Range Rings can proceed as described above.

In the WiMAX wireless protocol, the MS reports the Round Trip Delay (T_(RTD)) and the Relative Delay (T_(RD)) where the first parameter is with respect to the anchor BS, and the second is with respect to other neighboring BSs. Let the values of Relative Delay with respect to neighbor BSs 2, 3, . . . k be given by T_(RDj). Then the Range Ring with respect to the anchor BS can be written as R1=0.5*T_(RTD) while the Range Ring with respect to neighbor BS j can be written as R _(j) =T _(RDj) +R ₁ ; {j=2, 3, . . . k}  [32] With the Range Rings determined in this manner the methods for determining location as described above can be applied.

In the case of the CDMA protocol, the downlink transmissions are synchronous to Global Positioning System (GPS) time. Additionally, this time reference is conveyed to the MS via the downlink of the serving BS. The Mobile time reference is thus a delayed version of the BS time reference with this delay being exactly the propagation delay from the BS to the MS. When the MS transmits, it uses its own delayed time reference to adjust the Pseudo-Noise (PN) code phases. A WLS collocated with the serving BS can thus determine the BS-MS propagation time R₁ as one half of the overall time difference between the downlink PN code phase and the received uplink PN code phase. This is then the applicable Range Ring for the Mobile Serving BS path. Additionally, WLSs located elsewhere can observe the uplink PN code phase. If WLS_(j) receives this uplink code phase at time t_(j), and the WLS at the serving BS observes the Downlink code phase at time t_(F), then one can write the Range Ring R_(j) as R _(j) =t _(j) −t _(F) −R ₁ ; {j=2, 3, . . . k}  [33] With the Range Rings determined in this manner the methods for determining location as described above can be applied.

It may be emphasized that the above-described embodiments, particularly any “preferred” embodiments, are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiments of the disclosure without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and the present disclosure and protected by the following claims Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus. The tangible program carrier can be a propagated signal or a computer readable medium. The propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or a combination of one or more of them.

The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, to name just a few.

Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, input from the user can be received in any form, including acoustic, speech, or tactile input.

Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.

The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

While this specification contains many specifics, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

Although a few embodiments have been described in detail above, other modifications are possible. Other embodiments may be within the scope of the following claims. 

1. A method of determining the location of a mobile device in a network having a plurality of bases stations, in which a base station communicates with the mobile device in a downlink transmission and the mobile device communicates with a base station in uplink transmission, comprising the steps of: (a) receiving signals transmitted by the mobile device at a plurality of sensors; (b) for each sensor: (i) estimating a range between the mobile device and the sensor as a function of the received signal; (ii) estimating an error associated with the received signal at the sensor; (iii) determining a distance between the sensor and a candidate location of the mobile device; (iv) comparing the estimated range adjusted by the estimated error to the determined distance to the candidate location; and (v) weighting the candidate location as a function of the comparison, wherein the weighting is greater for the case when the estimated range adjusted by the estimated error is greater than the determined distance to the candidate location than for the case when the estimated range adjusted by the estimated error is less than the determined distance to the candidate location; and (c) estimating the location of the mobile as a function of the weighted candidate solutions.
 2. The method of claim 1 further comprising the step of weighting the estimated range as a function of the magnitude of the difference between the estimated range adjusted by the estimated error and the determined distance to the candidate location.
 3. The method of claim 1 wherein the estimated error is determined as a function of at least one of timing errors, wireless protocol, type of terrain, and presence of multipath.
 4. The method of claim 1 wherein the estimated error is weighted.
 5. The method of claim 1 wherein the estimated error is constrained.
 6. The method of claim 1 wherein the estimated error for each estimated range is the same.
 7. The method of claim 1 wherein the candidate location of the mobile device is based on downlink signals received by the mobile device.
 8. The method of claim 1 wherein the candidate location of the mobile device is based on uplink signals received by the mobile device.
 9. The method of claim 1 wherein the candidate location of the mobile device is based on GPS signals. 